/*!
 @header ProductFormViewController.h
 @author 王 文彬
 @version 1.0.0 2013/02/01 Creation
 Copyright (c) 2013年 mypocketbaby. All rights reserved.
 */

#import <UIKit/UIKit.h>
#import "JSONRequest.h"
#import "OrderPickerViewController.h"
#import "GKImageCropper.h"
#import "UICustomPickerView.h"
#import "CustomScrollView.h"
#import "AddressPickerViewController.h"
#import "FreightPickerViewController.h"

@class CirclePickerViewController;

/*!
 @abstract ProductFormViewController预览并提供修改商品的所有信息功能，同时用于添加新的商品所需要填写的信息。如果商品存在，
 那么可以停售或继续销售此商品，以及删除此商品。
 */
@interface ProductFormViewController : UIViewController <UINavigationControllerDelegate,UIImagePickerControllerDelegate,UIActionSheetDelegate, JSONRequestDelegate, OrderPickerViewControllerDelegate, GKImageCropperDelegate, UITextViewDelegate, UICustomPickerViewDelegate, UICustomPickerViewDataSource, CustomScrollViewDelegate, UITextFieldDelegate, AddressPickerViewControllerDelegate, FreightPickerDelegate>
{
    NSDictionary* _product;                         //商品信息，如果为nil那么表示是在添加新商品；不为nil表示是预览或修改商品信息。
    NSMutableArray* _unitDataSource;                //单位数据源
    NSString*       _circleIDString;                //被选中的商品发布的圈子集合字符串
    
    UICustomPickerView* _customPickerView;            //区域选择器
    UICustomPickerView *_unitPickerView;              //单位选择器
    
    UITextField* _nameField;                        //商品名

    UITextView* _descTextView;                      //商品介绍
    UITextField* _priceField;                       //商品价格
    UITextField* _numField;                         //商品数量
    UITextField* _areaField;                        //销售区域
    UILabel*     _circleLabel;                      //已选择的圈子集合

    UILabel*     _circleTitleLabel;                 //已被选择中的圈子集合的标题
    UIButton*    _circleButton;                     //选择圈子按钮
    UILabel*     _unitLabel;                        //商品单价
    UIImage*     _image1;                           //商品图片1
    UIImage*     _image2;                           //商品图片2
    UIImage*     _image3;                           //商品图片3
    NSInteger    _imageId1;                         //商品图片1的ID
    NSInteger    _imageId2;                         //商品图片2的ID
    NSInteger    _imageId3;                         //商品图片3的ID

    NSMutableArray* _imageDelIds;                   //删除的商品图片ID集合
    NSMutableArray* _imageUpload;                   //需要上传的商品图片
    
    UIButton*    _imageButton1;                     //选择图片按钮1
    UIButton*    _imageButton2;                     //选择图片按钮2
    UIButton*    _imageButton3;                     //选择图片按钮3
    UIButton*    _currentImageButton;               //当前被用户点击的图片选择按钮
    UIView*      _buttonsView;                      //工具栏背景
    UIButton*    _stopSellingButton;                //停售按钮
    UIButton*    _sellingButton;                    //恢复销售按钮
    UIButton*    _expressButton;                    //快递标记按钮
    UIButton*    _takeButton;                       //自取标记按钮
    CustomScrollView* _scrollView;                  //自定义scrollview，响应touch事件
    UILabel*     _addressLabel;                     //地址栏
    UIView *_deliveryWayView;                       //配送方式栏view
    UIView *_deliveryAddressView;                   //配送地址栏view
    UIView* _circleView;                            //圈子选择view 
    NSDictionary *_address;                         //地址对象
    UIImageView *_expressImageView;                 //配送方式被选中标记
    UIImageView *_takeImageView;                    //配送方式未被选中标记
    NSNumber *_consIdSelected;                      //被选中的地址id
    UITextField* _originField;                      //商品产地
    
    UIView* _areaView;
    UILabel *_fareLabel;                            //物流运费Label
    UIImageView *_lineImageView_1;                  //华丽的分割线
    UIImageView *_lineImageView_2;                  //华丽的分割线
    UIImageView *_lineImageView_3;                  //华丽的分割线
    
    UIButton *_sellerButton;                        //卖家承担运费按钮
    UIImageView *_sellerImageView;                  //卖家承担运费是否被选中标记
    UILabel *_sellerLabel;                          //卖家承担运费Label
    
    UIButton *_buyerButton;                         //买家承担运费按钮
    UIImageView *_buyerImageView;                   //买家承担运费是否被选中标记
    UILabel *_buyerLabel;                           //买家承担运费Label
    
    UILabel *_deliveryCityLabel;                    //发货城市Label
    UITextField *_deliveryCityTextField;            //发货城市textfield
    
    UILabel *_localLabel;                           //同城运费Label
    UITextField *_localFareTextField;               //同城运费textfield
    UILabel *_localUnitLabel;                       //同城运费单位Label
    
    UILabel *_nationwideLabel;                      //全国运费Label
    UITextField *_nationwideFareTextField;          //全国运费textfield
    UILabel *_nationwideUnitLabel;                  //全国运费单位Label
    
    UIView* _advView;                               //推广文字和按钮的容器
    
    //用于检测是保存按钮被点击，还是推广按钮被点击。当是推广按钮被点击的时候，该值为真
    //resetView方法每次被调用时，应该置该值为假。并且在保存商品信息后，通过该值来引导进入推广付款页面，还是返回商品列表页
    BOOL    _advButtonOnClick;
    
    CGFloat _offset;
    
    BOOL _backOption;                               //退出操作
    
    NSMutableArray *_primeImagesData;               //初始图片数组
    NSMutableArray *_currentImagesData;             //
    
    NSDictionary *_consignee;                       //地址信息
    
    UIView *_freightView;                           //运费模板视图
    
    UILabel *_freightLabel;                         //运费Label
    
    BOOL _deliveryAddressViewDidShow;              //取货地址是否显示，YES已经显示,NO没有显示
    BOOL _freightViewDidShow;                      //运费模板地址是否显示，YES已经显示,NO没有显示
    
    NSDictionary *_currentFreight;
    NSInteger _currentFreightId;
}

/*!
 @abstract 商品信息，如果为nil那么表示是在添加新商品；不为nil表示是预览或修改商品信息。
 */
@property (strong, nonatomic) NSDictionary* product;

@end
